Skip to content

Conversation

@mcgov
Copy link
Collaborator

@mcgov mcgov commented Feb 5, 2025

Adding a runner for the DPDK example app multiprocessing/symmetric_mp. This is another flavor of the multiprocessing test which can scale to a larger number of ports and processes than 'multiprocessing/client_server_mp'.

Adding this test required a few smaller changes (and one refactor):

  • Allow an arbitrary number of nics to be passed to initialize_node_resources (refactor)
  • Use dpdk-devname app to select the correct DPDK port ID when building a port mask

With these changes, the test itself is straightforward. We build and start the application; then use enable debug logging and check for the important DPDK netvsc PMD events that show the example app is working as expected.

@mcgov mcgov force-pushed the mcgov/symmetric-pr branch 2 times, most recently from 1181aa2 to cc13252 Compare September 15, 2025 16:10
@mcgov mcgov force-pushed the mcgov/symmetric-pr branch 2 times, most recently from 970e586 to be7acdf Compare September 17, 2025 13:38
@squirrelsc
Copy link
Member

@LiliDeng LGTM

@LiliDeng LiliDeng requested a review from Copilot September 18, 2025 02:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for the DPDK symmetric_mp multiprocessing test example, which provides better scalability than the existing client_server_mp test for handling multiple ports and processes.

Key changes include:

  • Refactoring NIC initialization to accept arbitrary numbers of NICs
  • Adding dpdk-devname utility to determine correct DPDK port IDs for netvsc PMD
  • Implementing the symmetric_mp test runner with SRIOV rescind testing capabilities

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
dpdkutil.py Refactored NIC handling functions and added symmetric_mp test runner
dpdktestpmd.py Updated example app path resolution and added devname app support
dpdksuite.py Added new test case for symmetric_mp verification
devname/ Added new utility application for DPDK port ID discovery
lisa/nic.py Enhanced NIC string representation with dev_uuid

@mcgov mcgov marked this pull request as ready for review September 18, 2025 23:19
@mcgov mcgov changed the title [Review] Dpdk: add symmetric_mp test [dpdk] add symmetric_mp test Sep 24, 2025
@mcgov mcgov force-pushed the mcgov/symmetric-pr branch from 2877af6 to 1b7e71a Compare September 24, 2025 17:19
@squirrelsc squirrelsc merged commit b46630e into main Oct 1, 2025
57 checks passed
@squirrelsc squirrelsc deleted the mcgov/symmetric-pr branch October 1, 2025 22:55
mcgov added a commit that referenced this pull request Oct 3, 2025
* DPDK: symmetric_mp test

* DPDK: allow arbitrary nics passed to init

working symmetric_mp for mana and mlx

save state

more symmetric_mp

Dpdk: use more memory

Dpdk: symmetric_mp test use debug messages for status

Dpdk: move symmetric_mp to dpdkutil to allow rescind/non versions

Dpdk: symmetric_mp polishing

* DPDK: allow rescind in symmetric_mp test

* DPDK: add devname helper

* more symmetric_mp work

* dpdk/symmetric_mp: use installation path for examples

* dpdk/symmetric_mp: undo replacement example app change

* dpdk/symmetric_mp: add assert at the end

* symmetric_mp: rebase fix, remove nic index

* dpdk/symmetric_mp: comments for run function

* dpdk: fix isort ordering in dpdktestpmd.py

* Update microsoft/testsuites/dpdk/dpdktestpmd.py

Co-authored-by: Copilot <[email protected]>

* Update microsoft/testsuites/dpdk/dpdkutil.py

Co-authored-by: Copilot <[email protected]>

* fix copilot commit line length

* dpdk symmetric_mp: add patched version of main.c for old versions of dpdk

* fix symmetric_mp path

* save patched main file for symmetric_mp

* dpdk: remove commented line copilot missed

* dpdk: remove commented line that copilot didn't miss

---------

Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants